人腦大約有 860 億顆神經元,這些神經元彼此透過突觸相連,可以將訊號接收跟發送出去。在這樣龐大的神經元數量的連接下形成一個非常複雜的網路,來維持大腦的運作~
人工神經網路(Artificial Neural Network, ANN)就是受到大腦神經元運作方式的啟發而設計出來的。就像下圖,每一個圓圈就像一個神經元,它們彼此連接,層層傳遞訊息,組成複雜的網路。
圖片來源:https://promactinfo.com/blogs/deep-learning-the-art-of-solving-complex-tasks-with-neural-networks
那這樣複雜的結構能做到什麼呢?
如果說傳統機器學習像是 「老師幫你設計規則」,那神經網路就像 「自己學習規則」。
就好像一個小朋友在學習辨認水果:傳統方法是老師告訴他「蘋果是紅色、圓形、有梗」,而神經網路則像小朋友自己觀察、比較各種水果,慢慢找到判斷蘋果的標準 🍎
當神經網路的層數越來越多,就形成了我們所說的深度學習架構。所以,神經網路可以說是深度學習的基石!我們會先用兩篇文章來介紹神經網路的基礎概念,接下來再繼續探索更複雜的架構與應用~~
一個神經元的計算公式為:
圖片來源:https://medium.com/analytics-vidhya/neural-network-part1-inside-a-single-neuron-fee5e44f1e
MLP 就是最經典的 前饋神經網路(Feedforward Neural Network)。
主要是由 輸入層(Input Layer)→ 隱藏層(Hidden Layers)→ 輸出層(Output Layer) 所組成。每個神經元都接收前一層的輸出,做加權求和,再經過激活函數產生新的輸出。
圖片來源:https://blog.gopenai.com/day-12-multi-level-perceptron-mlp-and-its-role-in-llms-a942e4a9e0c8
每一層的神經元數量是可以由設計者自己決定的,這是屬於模型的超參數(hyperparameter)之一。
如果我們的運算只停在「加權求和」,就把這個數值直接傳給下一層,那麼整個網路不管有多少層,本質上仍然只是線性變換,無法學會複雜的非線性模式。
激活函數(Activation Function) 的作用就是可以引入非線性的模式,也可以控制輸出範圍,方便後續層的處理。
以下介紹幾個常見的激活函數:
Sigmoid:將輸出壓到 0~1,適合二元分類。
Tanh:將輸出壓到 -1~1,中心化後比 Sigmoid 穩定一些。
ReLu:非線性簡單、計算快、收斂速度快。
圖片來源:https://machine-learning.paperspace.com/wiki/activation-function
今天介紹了人工神經網路的基本概念,了解到一顆神經元如何接收輸入、加權求和,並透過激活函數產生輸出。
激活函數就像神經元的 「思考開關」,它可以限制哪些訊號可以向後傳遞,哪些會被擋下來。透過這個機制,神經網路才能學會複雜的非線性模式,並從資料中抽取最關鍵的特徵!
今天我們看到神經網路內部的運作規則,明天會介紹 反向傳播!我們就可以了解到神經網路如何自動調整權重、學習規則。最後也會有一段程式實作來了解神經網路的實際運作過程~~